#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<sys/types.h>

int main()
{
    pid_t id=fork();//创建子进程
    //返回前已经子进程创建好了，父子进程共享数据和代码，返回发生写时拷贝，父子进程id值不同地址相同
    if(id==0)
    {
        //child
        int cnt=0;
        while(1)
        {
            printf("I am child: pid:%d ppid:%d\n",getpid(),getppid());
            sleep(1);
            if(cnt==8)
                break;
            cnt++;
        }   
        exit(1);//终止进程
    }
    else if(id>0)
    {
        //father
        printf("I am father...\n");
        sleep(3);
        exit(1);//父进程退出，子进程编程孤儿进程
        //sleep(10);//等待间子进程为僵尸进程
        //pid_t ret=wait(NULL);
        //if(ret>0)
        //    printf("wait success: child id:%d\n",ret);
        //else
        //    printf("wait fail\n");
        //sleep(3);//休息3秒
    }
    return 0;
}

